stage4day3section1-2

Section1:再帰型ニューラルネットワークの概念

再帰型ニューラルネットワーク(Recurrent Neural Network:RNN)

時系列データの扱いが得意

確認テスト

サイズ5×5の入力画像を、サイズ3×3のフィルタで畳み込んだ時の出力画像のサイズを答えよ。

なおストライドは2、パディングは1とする。

答え

パティングが1なので周囲に+1するので入力画像は7x7

左上隅から右へ移動させるとすると7-3で4マス移動できる。

しかし、ストライドは2なので移動できるのは4/2で2回 

同様に縦方向も2回なので、出力は3x3

計算式

出力の幅 → (入力の幅 + パディングx2 - フィルタの幅)/スライド + 1

出力の高さ → (入力の高さ + パディングx2 - フィルタの高さ)/スライド + 1

確認テスト

RNNネットワークには大きく分けて3つの重みがある。

1つは入力から現在の中間層を定義する際にかけられる重み、

1つは中間層から出力を定義する際にかけられる重みである。

残りひとつの重みについて説明せよ。

答え

前の中間層(t−1t−1)から現在の中間層(tt)を定義する際にかけられる重み

確認テスト

答え

dxdz=2(x+y)\frac{dx}{dz}=2(x+y)

確認テスト

下図のy1y_1を数式で表わせ。

中間層の出力にシグモイド関数g(x)g(x)を作用させよ。

答え

z1=f(z0W+x1Win+b)z_1=f(z_0W+x_1Win+b)

y1=g(z1Wout+c)y_1=g(z_1Wout+c)

*ビデオではなぜか途中でznz_nsns_nに変わってしまう。2:06分頃

演習チャレンジ

答え

(2)

コード演習問題

答え

(2)

BPTTの数学的記述3を参照

実装演習

3_1_simple_RNN.ipynb

RNNの課題

・勾配消失問題→長い時系列の学習が困難

解決策としてLSTM

Section2:LSTM

LSTMはRNNの中間層のユニットを、LSTM blockと呼ばれるメモリと3つのゲートを持つブロックに置き換えることで実現する

・CEC 記憶セルのこと。時刻tにおけるLSTMの記憶が格納されており、この部分に過去から時刻tまでにおいて必要な情報が格納される。

・入力ゲート 入力ゲートは、a(t)の各要素が新たに追加する情報としてどれだけ価値があるかを判断。この入力ゲートによって、追加する情報の取捨選択を行う。 入力ゲートによって重みづけされた情報が新たに追加されることになる。

・出力ゲート 出力ゲートは、g(c(t))の各要素が次時刻の隠れ状態h(t)としてどれだけ重要かという事を調整する。

・忘却ゲート 記憶セルであるCECに対して、不要な記憶を忘れさせるための役割をするゲート。

ゲートという言葉→ イメージとしては水をどのくらいの量流すかをコントロールするもの。

水門のような蛇口のようなもの。

ゲートの開き具合は0.0~1.00.0~1.0までの実数で表されます。そしてその数値によって、次へ水を流す量をコントロールする。実際にはこの数値も重みパラメータとして、学習データによって更新されていく。

sigmoid関数が活性化関数として使われていますが、sigmoid関数の出力は0.0~1.00.0~1.0の実数を取るので、まさにゲートの開き具合を求めているということが分かる。

確認テスト

答え

(2) *前にも確認テスト出でた

演習チャレンジ

(1)gradient * rate

(2)gradient / norm

(3)gradient / threshold

(4)np.maximum(gradient, threshold)

 答え

(1)

threshold スレショールド 閾値

確認テスト

答え

忘却ゲート

演習チャレンジ

答え

(3)

cecに覚えさせる